Digital watermarking is a process for modifying a host signal (e.g., a physical, electronic or electromagnetic signal) to embed a hidden, machine-readable code. The host signal may be modified such that the embedded code is imperceptible or nearly imperceptible to a human, yet may be detected through an automated detection process. Most commonly, digital watermarking is applied to media such as still images, audio, and video. However, it may also be applied to other types of media, including documents (e.g., through line, word or character shifting), software, multi-dimensional graphics models, and surface textures of objects. Steganography is related field of study pertaining to encoding and decoding of hidden auxiliary data signals, such that the auxiliary data is not discernable by a human.
Digital watermarking systems typically have two primary components: an encoder that embeds the digital watermark (also referred to herein simply as a “watermark”) in a host signal conveyed by the media (also referred to as a “host media signal”), and a decoder that detects and reads the embedded watermark from a signal suspected of containing a watermark (i.e., a “suspect signal”). The encoder embeds a watermark by subtly altering the host media signal. The decoder analyzes a suspect signal to detect whether a watermark is present. In applications where the watermark encodes information (i.e., a “payload”), the decoder decodes this information from the detected watermark and interprets the decoded information.
The format, syntax, semantics and/or length of message payloads associated with two different watermarks can be different. Thus, one practical challenge in the deployment of digital watermarking systems is the potential inability to accurately interpret what the payload, once decoded from the watermark, represents. For example suppose a payload, once decoded, is “112328324721”. Without more, it is difficult to accurately determine what “112328324721” represents. One potential solution would be to eliminate the interpretation function at the decoder, and instead provide the payload as a pointer, index, or other link that a decoder in the field can simply transmit (e.g., wirelessly, via Wi-Fi, etc.) to a remote network database where the specific payload associated with the indirect link can be retrieved. Thus, to continue with the example given above, the decoder may transmit the decoded link to a remote network database, and the payload associated with the transmitted link can be retrieved as a payload representing lottery numbers associated with a lottery jackpot game (e.g., POWERBALL).
The disclosure provides variable message payload methods. One aspect of the disclosure is a message payload method for creating a data structure (e.g., a digital watermark, etc.). This method forms a payload item identifier in a first portion of a payload field that identifies a payload item conveyed in a second portion of the payload field. The payload item identifier and the payload item are then embedded into a host media signal (e.g., such that the message is substantially imperceptible in the host media signal).
Another aspect of the disclosure is a method for interpreting a data structure having fixed and variable message portions. The method determines a version of the variable message portion and decodes a payload field of the variable message portion according to the determined version. It then determines a payload item identifier in a first portion of a payload field of the decoded variable message portion and interprets a payload item conveyed in a second portion of the decoded payload field according to the determined payload item identifier.
Yet another aspect of the disclosure is a method for interpreting a data structure having fixed and variable message portions. The method determines a version of the variable message portion and decodes only a portion of the payload field of the variable message portion according to the determined version. It then interprets a payload item conveyed in the decoded portion of the payload field.
Still another aspect of the disclosure is a method for interpreting a data structure having fixed and variable message portions. The method determines a version of the variable message portion, decodes the entire payload field of the variable message portion and then interprets only a portion of the decoded payload field according to the determined version.
Further features will become apparent with reference to the following detailed description and accompanying drawings.